package com.diver.flinkdemo.entity.xxt;


import com.diver.flinkdemo.enums.OrderStatusEnum;
import com.diver.flinkdemo.enums.PayOrderStatusEnum;
import com.diver.flinkdemo.utils.excel.ExcelAnnotation;

/**
 * 2018/10/25
 * Created by Lynn Li.
 */
public class PayOrder implements java.io.Serializable {

    // 序列化版本
    private static final long serialVersionUID = -519652068856941568L;

    // 唯一标识 [主键]
    private String id;
    // 订单编号
    private String orderId;

    // 微信支付流水号
    private String outTradeNo;

    // 订单类型（支付方式 WECHATPAY）
    private String type;

    // 退款原因
    private String refund;
    // 支付金额(分)
    private Integer chargeNum;

    // 用户id
    private String userId;
    // 学校id
    private String schoolId;

    // 学生证id
    private String studentCardId;


    // 原因类型
    private String reason;
    // 详细原因
    private String reasonDesc;


    private String classId;


    // 学生名称
    @ExcelAnnotation(exportTitleName = "姓名")
    private String studentName;

    // 学校名称
    @ExcelAnnotation(exportTitleName = "学校")
    private String schoolName;

    @ExcelAnnotation(exportTitleName = "年级")
    private String gradeName;

    @ExcelAnnotation(exportTitleName = "班级")
    private String className;

    // 身份证
    @ExcelAnnotation(exportTitleName = "身份证号")
    private String idCard;

    // 电话
    @ExcelAnnotation(exportTitleName = "监护人手机号")
    private String phone;

    // 下单时间
    @ExcelAnnotation(exportTitleName = "申请时间", dateTimeFormat = "yyyy-MM-dd HH:mm:ss")
    private Long orderTime;

    @ExcelAnnotation(exportTitleName = "支付状态", mapData = PayOrderStatusEnum.class)
    private Integer payStatus;

    //excel导出需要元， 因为chargeNum为Int类型， 故额外设一个字段做为导出用
    @ExcelAnnotation(exportTitleName = "金额(元)")
    private String chargeNumYuan;

    @ExcelAnnotation(exportTitleName = "状态", mapData = OrderStatusEnum.class)
    private Integer status;


    private String gradeId;


    private String cardType;

    private String studentType;

    public String getStudentType() {
        return studentType;
    }

    public void setStudentType(String studentType) {
        this.studentType = studentType;
    }

    public String getClassId() {
        return classId;
    }

    public void setClassId(String classId) {
        this.classId = classId;
    }

    public String getClassName() {
        return className;
    }

    public void setClassName(String className) {
        this.className = className;
    }

    public String getGradeId() {
        return gradeId;
    }

    public void setGradeId(String gradeId) {
        this.gradeId = gradeId;
    }

    public String getGradeName() {
        return gradeName;
    }

    public void setGradeName(String gradeName) {
        this.gradeName = gradeName;
    }

    public String getCardType() {
        return cardType;
    }

    public void setCardType(String cardType) {
        this.cardType = cardType;
    }

    /**
     * 获取唯一标识 [主键]
     *
     * @return 唯一标识
     */
    public String getId() {
        return id;
    }

    /**
     * 设置唯一标识 [主键]
     *
     * @param id 唯一标识
     */
    public void setId(String id) {
        this.id = id;
    }



    /**
     * 获取用户id
     *
     * @return 用户id
     */
    public String getUserId() {
        return userId;
    }

    /**
     * 设置用户id
     *
     * @param userId 用户id
     */
    public void setUserId(String userId) {
        this.userId = userId;
    }

    /**
     * 获取订单类型（支付方式 WECHATPAY）
     *
     * @return 订单类型（支付方式 WECHATPAY）
     */
    public String getType() {
        return type;
    }

    /**
     * 设置订单类型（支付方式 WECHATPAY）
     *
     * @param type 订单类型（支付方式 WECHATPAY）
     */
    public void setType(String type) {
        this.type = type;
    }

    /**
     * 获取订单状态态：0=待支付、1=已支付、2=待退款、3=退款成功、4=退款失败
     *
     * @return 订单状态态：0=待支付、1=已支付、2=待退款、3=退款成功、4=退款失败
     */
    public Integer getStatus() {
        return status;
    }

    /**
     * 设置订单状态态：0=待支付、1=已支付、2=待退款、3=退款成功、4=退款失败
     *
     * @param status 订单状态态：0=待支付、1=已支付、2=待退款、3=退款成功、4=退款失败
     */
    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getPayStatus() {
        return payStatus;
    }

    public void setPayStatus(Integer payStatus) {
        this.payStatus = payStatus;
    }

    public String getOrderId() {
        return orderId;
    }

    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }

    public String getOutTradeNo() {
        return outTradeNo;
    }

    public void setOutTradeNo(String outTradeNo) {
        this.outTradeNo = outTradeNo;
    }

    /**
     * 获取下单时间
     *
     * @return 下单时间
     */
    public Long getOrderTime() {
        return orderTime;
    }

    /**
     * 设置下单时间
     *
     * @param orderTime 下单时间
     */
    public void setOrderTime(Long orderTime) {
        this.orderTime = orderTime;
    }

    /**
     * 获取电话
     *
     * @return 电话
     */
    public String getPhone() {
        return phone;
    }

    /**
     * 设置电话
     *
     * @param phone 电话
     */
    public void setPhone(String phone) {
        this.phone = phone;
    }

    /**
     * 获取退款原因
     *
     * @return 退款原因
     */
    public String getRefund() {
        return refund;
    }

    /**
     * 设置退款原因
     *
     * @param refund 退款原因
     */
    public void setRefund(String refund) {
        this.refund = refund;
    }

    /**
     * 获取支付金额(分)
     *
     * @return 支付金额(分)
     */
    public Integer getChargeNum() {
        return chargeNum;
    }

    /**
     * 设置支付金额(分)
     *
     * @param chargeNum 支付金额(分)
     */
    public void setChargeNum(Integer chargeNum) {
        this.chargeNum = chargeNum;
    }

    /**
     * 获取学校id
     *
     * @return 学校id
     */
    public String getSchoolId() {
        return schoolId;
    }

    /**
     * 设置学校id
     *
     * @param schoolId 学校id
     */
    public void setSchoolId(String schoolId) {
        this.schoolId = schoolId;
    }

    /**
     * 获取学校名称
     *
     * @return 学校名称
     */
    public String getSchoolName() {
        return schoolName;
    }

    /**
     * 设置学校名称
     *
     * @param schoolName 学校名称
     */
    public void setSchoolName(String schoolName) {
        this.schoolName = schoolName;
    }

    /**
     * 获取学生证id
     *
     * @return 学生证id
     */
    public String getStudentCardId() {
        return studentCardId;
    }

    /**
     * 设置学生证id
     *
     * @param studentCardId 学生证id
     */
    public void setStudentCardId(String studentCardId) {
        this.studentCardId = studentCardId;
    }

    /**
     * 获取学生名称
     *
     * @return 学生名称
     */
    public String getStudentName() {
        return studentName;
    }

    /**
     * 设置学生名称
     *
     * @param studentName 学生名称
     */
    public void setStudentName(String studentName) {
        this.studentName = studentName;
    }

    /**
     * 获取身份证
     *
     * @return 身份证
     */
    public String getIdCard() {
        return idCard;
    }

    /**
     * 设置身份证
     *
     * @param idCard 身份证
     */
    public void setIdCard(String idCard) {
        this.idCard = idCard;
    }

    /**
     * 获取原因类型
     *
     * @return 原因类型
     */
    public String getReason() {
        return reason;
    }

    /**
     * 设置原因类型
     *
     * @param reason 原因类型
     */
    public void setReason(String reason) {
        this.reason = reason;
    }

    /**
     * 获取详细原因
     *
     * @return 详细原因
     */
    public String getReasonDesc() {
        return reasonDesc;
    }

    /**
     * 设置详细原因
     *
     * @param reasonDesc 详细原因
     */
    public void setReasonDesc(String reasonDesc) {
        this.reasonDesc = reasonDesc;
    }

    public String getChargeNumYuan() {
        return chargeNumYuan;
    }

    public void setChargeNumYuan(String chargeNumYuan) {
        this.chargeNumYuan = chargeNumYuan;
    }
}
